package com.newtype.meeting.client.service;

import java.util.ArrayList;
import java.util.HashMap;

import com.extjs.gxt.ui.client.data.PagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.newtype.meeting.client.model.Account;
import com.newtype.meeting.client.model.Member;
import com.newtype.meeting.shared.AccountDTO;
import com.newtype.meeting.shared.AccountSummaryDTO;

/**
 * 帐户信息业务逻辑接口
 * @author 汪恭泽
 * Jun 3, 2011 10:04:16 AM
 */
@RemoteServiceRelativePath("accountService")
public interface AccountService extends RemoteService {

	public Boolean deleteAccount(String id);

	public AccountDTO getAccount(String id);

	public Account checkLogin(HashMap<String, String> loginInfo);

	public Boolean checkExist(String accountID);

	public AccountDTO updateAccount(AccountDTO accountDTO);

	public ArrayList<AccountSummaryDTO> getAccountSummaries(String status);

	public ArrayList<AccountSummaryDTO> getAccountsByTitleID(String titleID);

	public void addAccount(Account account);

	public PagingLoadResult<AccountSummaryDTO> getAccounts(
			PagingLoadConfig config, String status);

	public void saveMember(Member member);

	public AccountSummaryDTO getAccountSummaryDTO(String id);
	
	/**
	 * 通过AccountID获取该帐户信息
	 * @param accountID
	 * @return
	 */
	public Account getAccountByAccountID(String accountID);
	
	/**
	 * 功能：通过邮箱获取该用户信息
	 * @param email 邮箱地址
	 * @return
	 */
	public Account getAccountByEmail(String email);

}
